#ifndef __STDARG_H
#define __STDARG_H
/*
* ---------------------------------
* STDARG.H
* Reindeer OS
* ---------------------------------
* Variables arguments helper macros
*/

#include "va_list.h"

/* width of stack == width of int */
#define STACKITEM int

/* round up width of objects on stack. The expression before the 
ensures that we get 0 for objects of size 0. */
#define VA_SIZE(TYPE)   \
	((sizeof(TYPE) + sizeof(STACKITEM) -1)   \
		& ~(sizeof(STACKITEM) - 1))

/* &(LASTARG) points to the LEFTMOST argument of the function call (before the ...) */
#define va_start(AP, LASTARG)    \
	(AP=((va_list)&(LASTARG) + VA_SIZE(LASTARG)))

#define va_end(AP)

#define va_arg(AP,TYPE)     \
	(AP += VA_SIZE(TYPE), *((TYPE *)(AP - VA_SIZE(TYPE))))

#endif
